/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package futbol.tacticas.concursantes.aitkiar;

import futbol.tacticas.concursantes.*;
import futbol.tacticas.Comando;
import futbol.tacticas.SituacionJugadores;
import futbol.tacticas.concursantes.aitkiar.aitutil.Campo;
import futbol.tacticas.concursantes.aitkiar.aitutil.Defensa;
import futbol.tacticas.concursantes.aitkiar.aitutil.Delantero;
import futbol.tacticas.concursantes.aitkiar.aitutil.Jugador;
import futbol.tacticas.concursantes.aitkiar.aitutil.Medio;
import futbol.tacticas.concursantes.aitkiar.aitutil.Portero;
import futbol.tacticas.concursantes.aitkiar.aitutil.Utils;
import java.awt.Color;
import java.util.Vector;

/**
 *
 * @author aitkiar
 */
public class TacticaAitkiar implements Tactica
{

    Jugador jugadores[];
    Campo campo;

    public TacticaAitkiar()
    {
        jugadores = new Jugador[11];
        jugadores[0] = new Portero( -150, 0, 6, 0 );
        jugadores[1] = new Defensa( -90, 0, 5, 1 );
        jugadores[2] = new Defensa( -90, -35, 5, 2 );
        jugadores[3] = new Defensa( -90, 35, 6, 3 );
        jugadores[4] = new Medio( -55, -20, 6, 4 );
        jugadores[5] = new Medio( -05, 10, 6, 5 );
        jugadores[6] = new Delantero( 90, -35, 6, 6 );
        jugadores[7] = new Medio( 30, 35, 5, 7 );
        jugadores[8] = new Medio( -30, 90, 6, 8 );
        jugadores[9] = new Medio( -30, -90, 5, 9 );
        jugadores[10] = new Delantero( 140, 0, 7, 10 );
        
        campo = new Campo( 20 );
            
        for ( int i = 0; i < 11; i ++ )
        {
            jugadores[i].setEquipo( jugadores );
            jugadores[i].setCampo( campo );
        }
        jugadores[1].setDefensivo( false );
        jugadores[5].setDefensivo( true );
        jugadores[4].setDefensivo( true );
        campo.setEquipo( jugadores );
    }

    public String getNombre()
    {
        return "Aitkiar";
    }

    public Color getColor1()
    {
        return new Color( 0xff, 0x00, 0x00 );
    }

    public Color getColor2()
    {
        return new Color( 0xff, 0xff, 0x00 );
    }

    public Color getColorNumero()
    {
        return new Color( 0x00, 0x00, 0x00 );
    }

    public int getFuerza( int n )
    {
        return jugadores[n].getFuerza();
    }

    public int getXInicial( int n )
    {
        return jugadores[n].getX();
    }

    public int getYInicial( int n )
    {
        return jugadores[n].getY();
    }

    public Vector<Comando> getComandos( SituacionJugadores sj )
    {
        Vector<Comando> comandos = new Vector<Comando>();
        campo.actualizar( sj );
        for ( int i = 0; i < 11; i++ )
        {
            comandos.add( jugadores[i].getComando( sj ) );
        }
        
        Utils.ultimaBola = sj.getBola();
        return comandos;
    }
}
